/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.date.DateUtil
 *  cn.hutool.core.util.ObjectUtil
 *  cn.hutool.core.util.StrUtil
 *  com.alibaba.fastjson.JSON
 *  com.alibaba.fastjson.JSONObject
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.CheckBox
 *  javafx.scene.control.ChoiceBox
 *  javafx.scene.control.DatePicker
 *  javafx.scene.control.Pagination
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.Pane
 *  javafx.scene.layout.VBox
 *  javafx.util.Callback
 *  javafx.util.StringConverter
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.salesInquire;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gys.common.business.SaleScheduleSettingUtil;
import com.gys.common.business.SalesInquiryUtil;
import com.gys.common.business.SalesReceiptsUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.data.PageInfo;
import com.gys.common.enums.SpecialMedClass;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.common.util.ConstUtil;
import com.gys.common.util.ExcelUtil;
import com.gys.controller.BaseController;
import com.gys.controller.index.IndexController;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.data.medCheck.GsmchStatus;
import com.gys.data.medCheck.GsmchType;
import com.gys.data.saleScheduleSetting.GetSaleScheduleInData;
import com.gys.data.salesInquire.SalesInquireDetailOutData;
import com.gys.data.salesInquire.SalesInquireInData;
import com.gys.data.salesInquire.SalesInquireOutData;
import com.gys.data.salesReceipts.GetDoctorOutData;
import de.felixroske.jfxsupport.FXMLController;
import java.net.URL;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Pagination;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
import javafx.util.Callback;
import javafx.util.StringConverter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class SalesInquireController
extends BaseController
implements Initializable {
    private static final Logger log = LoggerFactory.getLogger(SalesInquireController.class);
    @FXML
    private Button queryBtn;
    @FXML
    private VBox vBox;
    @FXML
    private TextField memberCardNum;
    @FXML
    private TextField proCode;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesRetailPrice;
    @FXML
    private TextField prescriptionNum;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> origin;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesBrId;
    @FXML
    private DatePicker saleDate;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailRetailPrice;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailDoctor;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesMemberCardNum;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> proSpecs;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> proForm;
    @FXML
    private ChoiceBox<GsmchType> payMethod;
    @FXML
    private ChoiceBox<GetUserOutData> cashier;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> proUnit;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailPerson;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesBillNo;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesBrName;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> proName;
    @FXML
    private TableColumn<SalesInquireOutData, String> pointsThisTime;
    @FXML
    private TextField billNo;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesPayMethod;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesMemberName;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> factory;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailBatchNo;
    @FXML
    private TableView<SalesInquireOutData> sortInfo;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesDate;
    @FXML
    private CheckBox ifReturn;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailAmountReceived;
    @FXML
    private TableColumn<SalesInquireOutData, String> index;
    @FXML
    private TableView<SalesInquireDetailOutData> detailInfo;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> indexDetail;
    @FXML
    private ChoiceBox<GetDoctorOutData> doctor;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesAmountReceived;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailBillNo;
    @FXML
    private TextField totalAmt;
    @FXML
    private TextField batchNo;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesCashier;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> qty;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> lineNum;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> validUntil;
    @FXML
    private ChoiceBox<GetUserOutData> salesPerson;
    @FXML
    private ChoiceBox<GsmchType> specialDrugClass;
    @FXML
    private ChoiceBox<GsmchStatus> ifSplit;
    @FXML
    private TableColumn<SalesInquireOutData, String> salesTime;
    @FXML
    private TableColumn<SalesInquireDetailOutData, String> salesDetailProCode;
    @FXML
    private Pane modelPane;
    @FXML
    private Pagination pagination;
    @FXML
    private Button extDetailBtn;
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private Button extBtn;
    @FXML
    private TableColumn<SalesInquireOutData, CheckBox> checkBox;
    private final int pageSize = ConstUtil.DEFAULT_PAGESIZE;
    private final int defaultPageCount = ConstUtil.DEFAULT_PAGECOUNT;
    @Autowired
    private IndexController indexController;
    List<GetUserOutData> outDataList = new ArrayList<GetUserOutData>();
    private ObservableList<SalesInquireOutData> salesInquireOutDataList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<SalesInquireDetailOutData> salesInquireDetailOutDataList = FXCollections.observableArrayList(new ArrayList());

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.sortInfo.setPrefWidth(this.getContentWidth());
        this.pagination.setPrefWidth(this.getContentWidth());
        this.detailInfo.setPrefWidth(this.getContentWidth());
        StringConverter converter = CommonUtil.dataPickerFormat("yyyyMMdd");
        this.saleDate.setConverter(converter);
        this.outDataList.clear();
        GetSaleScheduleInData inData = new GetSaleScheduleInData();
        inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGsegBrId(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson httpJson = SaleScheduleSettingUtil.queryUser(CommonUtil.convertToMap(inData));
        if (!httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return;
        }
        this.outDataList = JSON.parseArray((String)httpJson.getMsg(), GetUserOutData.class);
        this.salesPerson.getItems().addAll(this.outDataList);
        this.salesPerson.converterProperty().set(new StringConverter<GetUserOutData>(){

            public String toString(GetUserOutData object) {
                return object.getLoginName();
            }

            public GetUserOutData fromString(String string) {
                return null;
            }
        });
        this.cashier.getItems().addAll(this.outDataList);
        this.cashier.converterProperty().set(new StringConverter<GetUserOutData>(){

            public String toString(GetUserOutData object) {
                return object.getLoginName();
            }

            public GetUserOutData fromString(String string) {
                return null;
            }
        });
        this.ifSplit.getItems().addAll(this.getAllStatus());
        this.ifSplit.converterProperty().set(new StringConverter<GsmchStatus>(){

            public String toString(GsmchStatus object) {
                return object.getName();
            }

            public GsmchStatus fromString(String string) {
                return null;
            }
        });
        this.payMethod.getItems().addAll(this.getAllPayMethod());
        this.payMethod.converterProperty().set(new StringConverter<GsmchType>(){

            public String toString(GsmchType object) {
                return object.getName();
            }

            public GsmchType fromString(String string) {
                return null;
            }
        });
        HashMap<String, Object> param = new HashMap<String, Object>();
        param.put("client", ((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        param.put("depId", ((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson httpJson2 = SalesReceiptsUtil.queryDoctor(param);
        List items = new ArrayList();
        if (!httpJson2.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return;
        }
        items = JSON.parseArray((String)httpJson2.getMsg(), GetDoctorOutData.class);
        this.doctor.getItems().addAll(items);
        this.doctor.converterProperty().set(new StringConverter<GetDoctorOutData>(){

            public String toString(GetDoctorOutData object) {
                return object.getName();
            }

            public GetDoctorOutData fromString(String string) {
                return null;
            }
        });
        this.specialDrugClass.getItems().addAll(this.getAllSpecialMedClass());
        this.specialDrugClass.converterProperty().set(new StringConverter<GsmchType>(){

            public String toString(GsmchType object) {
                return object.getName();
            }

            public GsmchType fromString(String string) {
                return null;
            }
        });
        this.pagination.setPageFactory((Callback)new Callback<Integer, Node>(){

            public Node call(Integer pageNum) {
                return SalesInquireController.this.initOutTable(pageNum);
            }
        });
    }

    @Override
    public void init() {
        if (ObjectUtil.isEmpty(this.scrollPane)) {
            return;
        }
        this.indexController.scrollContentPane.setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

            public void handle(KeyEvent e) {
                if (e.getCode() == KeyCode.ENTER) {
                    SalesInquireController.this.queryAction();
                }
                e.consume();
            }
        });
        this.extBtn.setDisable(true);
        this.extDetailBtn.setDisable(true);
    }

    @FXML
    public void queryAction() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "");
        if (StrUtil.isBlank((CharSequence)this.billNo.getText()) && ObjectUtil.isEmpty(this.cashier.getValue()) && StrUtil.isBlank((CharSequence)this.prescriptionNum.getText()) && ObjectUtil.isEmpty(this.ifSplit.getValue()) && StrUtil.isBlank((CharSequence)this.proCode.getText()) && StrUtil.isBlank((CharSequence)this.memberCardNum.getText()) && StrUtil.isBlank((CharSequence)this.totalAmt.getText()) && ObjectUtil.isEmpty(this.payMethod.getValue()) && StrUtil.isBlank((CharSequence)this.batchNo.getText()) && ObjectUtil.isEmpty(this.salesPerson.getValue()) && ObjectUtil.isEmpty(this.doctor.getValue()) && ObjectUtil.isEmpty(this.saleDate.getValue()) && !this.ifReturn.isSelected()) {
            alert.setContentText("\u5fc5\u987b\u81f3\u5c11\u586b\u5199\u4e00\u9879\u5185\u5bb9\u8fdb\u884c\u67e5\u8be2\uff01");
            alert.showAndWait();
            return;
        }
        this.initOutTable(0);
        this.pagination.setCurrentPageIndex(0);
    }

    @FXML
    public void reset() {
        this.billNo.clear();
        this.cashier.setValue(null);
        this.prescriptionNum.clear();
        this.ifSplit.setValue(null);
        this.proCode.clear();
        this.memberCardNum.clear();
        this.totalAmt.clear();
        this.payMethod.setValue(null);
        this.batchNo.clear();
        this.salesPerson.setValue(null);
        this.doctor.setValue(null);
        this.saleDate.setValue(null);
        this.specialDrugClass.setValue(null);
        this.ifReturn.setSelected(false);
    }

    private void bingOutTableCell() {
        this.checkBox.setCellValueFactory(cellData -> ((SalesInquireOutData)cellData.getValue()).getCheckBox().getCustomCheckBox());
        this.checkBox.setCellFactory(col -> {
            TableCell<SalesInquireOutData, CheckBox> cell = new TableCell<SalesInquireOutData, CheckBox>(){

                protected void updateItem(CheckBox item, boolean empty) {
                    super.updateItem(item, empty);
                    this.setGraphic((Node)item);
                    if (item != null) {
                        item.setOnMouseClicked(col -> {
                            if (CollectionUtils.isEmpty((Collection)SalesInquireController.this.salesInquireOutDataList)) {
                                return;
                            }
                            int index = this.getIndex();
                            for (int i = 0; i < SalesInquireController.this.salesInquireOutDataList.size(); ++i) {
                                if (i == index) continue;
                                ((SalesInquireOutData)SalesInquireController.this.salesInquireOutDataList.get(i)).getCheckBox().setSelectStatus(false);
                            }
                            if (SalesInquireController.this.salesInquireOutDataList.size() > 0) {
                                SalesInquireController.this.extBtn.setDisable(false);
                            }
                            SalesInquireController.this.salesInquireDetailOutDataList.clear();
                            SalesInquireController.this.showDetail(index);
                        });
                    }
                }
            };
            return cell;
        });
        this.index.setCellValueFactory((Callback)new PropertyValueFactory(this.index.getId()));
        this.salesBrId.setCellValueFactory((Callback)new PropertyValueFactory("salesBrId"));
        this.salesBrName.setCellValueFactory((Callback)new PropertyValueFactory("salesBrName"));
        this.salesBillNo.setCellValueFactory((Callback)new PropertyValueFactory("salesBillNo"));
        this.salesDate.setCellValueFactory((Callback)new PropertyValueFactory("salesDate"));
        this.salesTime.setCellValueFactory((Callback)new PropertyValueFactory("salesTime"));
        this.salesMemberCardNum.setCellValueFactory((Callback)new PropertyValueFactory("salesMemberCardNum"));
        this.salesMemberName.setCellValueFactory((Callback)new PropertyValueFactory("salesMemberName"));
        this.salesRetailPrice.setCellValueFactory((Callback)new PropertyValueFactory("salesRetailPrice"));
        this.salesAmountReceived.setCellValueFactory((Callback)new PropertyValueFactory("salesAmountReceived"));
        this.salesPayMethod.setCellValueFactory((Callback)new PropertyValueFactory("salesPayMethod"));
        this.salesCashier.setCellValueFactory((Callback)new PropertyValueFactory("salesCashier"));
        this.pointsThisTime.setCellValueFactory((Callback)new PropertyValueFactory("pointsThisTime"));
        this.sortInfo.getSelectionModel().selectedItemProperty().addListener((ChangeListener)new ChangeListener<SalesInquireOutData>(){

            public void changed(ObservableValue<? extends SalesInquireOutData> observable, SalesInquireOutData oldValue, SalesInquireOutData newValue) {
                if (CollectionUtils.isEmpty((Collection)SalesInquireController.this.salesInquireOutDataList)) {
                    return;
                }
                for (int i = 0; i < SalesInquireController.this.salesInquireOutDataList.size(); ++i) {
                    if (i == newValue.getIndex() - 1) {
                        ((SalesInquireOutData)SalesInquireController.this.salesInquireOutDataList.get(i)).getCheckBox().setSelectStatus(true);
                        SalesInquireController.this.extBtn.setDisable(false);
                        continue;
                    }
                    ((SalesInquireOutData)SalesInquireController.this.salesInquireOutDataList.get(i)).getCheckBox().setSelectStatus(false);
                }
                SalesInquireController.this.showDetail(newValue.getIndex() - 1);
            }
        });
    }

    private void showDetail(int index) {
        if (((SalesInquireOutData)this.salesInquireOutDataList.get(index)).getCheckBox().isSelected().booleanValue()) {
            SalesInquireInData inData = new SalesInquireInData();
            inData.setClientId(((SalesInquireOutData)this.salesInquireOutDataList.get(index)).getClientId());
            inData.setBrId(((SalesInquireOutData)this.salesInquireOutDataList.get(index)).getSalesBrId());
            inData.setBillNo(((SalesInquireOutData)this.salesInquireOutDataList.get(index)).getSalesBillNo());
            PageInfo pageInfo = null;
            HttpJson rsp = SalesInquiryUtil.getSalesInquiryDetailList(inData);
            if (rsp.isSuccess()) {
                pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
                if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
                    ArrayList<SalesInquireDetailOutData> list = new ArrayList<SalesInquireDetailOutData>();
                    for (int i = 0; i < pageInfo.getList().size(); ++i) {
                        String str = JSONObject.toJSONString(pageInfo.getList().get(i));
                        SalesInquireDetailOutData outData = (SalesInquireDetailOutData)JSONObject.parseObject((String)str, SalesInquireDetailOutData.class);
                        list.add(outData);
                    }
                    pageInfo.setList(list);
                }
            } else {
                Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
                alert.showAndWait();
            }
            List<SalesInquireDetailOutData> dataList = null;
            dataList = pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList()) ? pageInfo.getList() : new ArrayList();
            if (dataList.size() > 0) {
                this.extDetailBtn.setDisable(false);
            }
            this.initDetailOutTable(dataList);
        }
    }

    private void bingDetailOutTableCell() {
        this.indexDetail.setCellValueFactory((Callback)new PropertyValueFactory(this.indexDetail.getId()));
        this.salesDetailBillNo.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailBillNo"));
        this.salesDetailProCode.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailProCode"));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory("proName"));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory("proSpecs"));
        this.proUnit.setCellValueFactory((Callback)new PropertyValueFactory("proUnit"));
        this.proForm.setCellValueFactory((Callback)new PropertyValueFactory("proForm"));
        this.lineNum.setCellValueFactory((Callback)new PropertyValueFactory("lineNum"));
        this.salesDetailBatchNo.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailBatchNo"));
        this.validUntil.setCellValueFactory((Callback)new PropertyValueFactory("validUntil"));
        this.qty.setCellValueFactory((Callback)new PropertyValueFactory("qty"));
        this.salesDetailRetailPrice.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailRetailPrice"));
        this.salesDetailAmountReceived.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailAmountReceived"));
        this.factory.setCellValueFactory((Callback)new PropertyValueFactory("factory"));
        this.origin.setCellValueFactory((Callback)new PropertyValueFactory("origin"));
        this.salesDetailPerson.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailPerson"));
        this.salesDetailDoctor.setCellValueFactory((Callback)new PropertyValueFactory("salesDetailDoctor"));
    }

    public TableView<SalesInquireOutData> initOutTable(int pageNum) {
        SalesInquireInData inData = new SalesInquireInData();
        if (StrUtil.isNotBlank((CharSequence)this.billNo.getText())) {
            inData.setBillNo(this.billNo.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.cashier.getValue())) {
            inData.setCashier(((GetUserOutData)this.cashier.getValue()).getUserId());
        }
        if (StrUtil.isNotBlank((CharSequence)this.prescriptionNum.getText())) {
            inData.setPrescriptionNum(this.prescriptionNum.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.ifSplit.getValue())) {
            inData.setIfSplit(((GsmchStatus)this.ifSplit.getValue()).getCode());
        }
        if (StrUtil.isNotBlank((CharSequence)this.proCode.getText())) {
            inData.setProCode(this.proCode.getText().trim());
        }
        if (StrUtil.isNotBlank((CharSequence)this.memberCardNum.getText())) {
            inData.setMemberCardNum(this.memberCardNum.getText().trim());
        }
        if (StrUtil.isNotBlank((CharSequence)this.totalAmt.getText())) {
            inData.setTotalAmt(this.totalAmt.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.payMethod.getValue())) {
            inData.setPayMethod(((GsmchType)this.payMethod.getValue()).getCode());
        }
        if (StrUtil.isNotBlank((CharSequence)this.batchNo.getText())) {
            inData.setBatchNo(this.batchNo.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.salesPerson.getValue())) {
            inData.setSalesPerson(((GetUserOutData)this.salesPerson.getValue()).getUserId());
        }
        if (ObjectUtil.isNotEmpty(this.doctor.getValue())) {
            inData.setDoctor(((GetDoctorOutData)this.doctor.getValue()).getId());
        }
        if (ObjectUtil.isNotEmpty(this.saleDate.getValue())) {
            inData.setSaleDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.saleDate.getValue()).toString()), (String)"yyyyMMdd"));
        }
        if (this.ifReturn.isSelected()) {
            inData.setIfReturn("1");
        } else {
            inData.setIfReturn("0");
        }
        inData.setPageNum(pageNum + 1);
        inData.setPageSize(this.pageSize);
        PageInfo pageInfo = null;
        HttpJson rsp = SalesInquiryUtil.getSalesInquiryList(inData);
        if (rsp.isSuccess()) {
            pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
            if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
                ArrayList<SalesInquireOutData> list = new ArrayList<SalesInquireOutData>();
                for (int i = 0; i < pageInfo.getList().size(); ++i) {
                    String string = JSONObject.toJSONString(pageInfo.getList().get(i));
                    SalesInquireOutData outData = (SalesInquireOutData)JSONObject.parseObject((String)string, SalesInquireOutData.class);
                    list.add(outData);
                }
                pageInfo.setList(list);
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
            return new TableView();
        }
        List<SalesInquireOutData> dataList = null;
        if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
            this.pagination.setPageCount(pageInfo.getPages());
            dataList = pageInfo.getList();
            if (dataList.size() > 0) {
                for (SalesInquireOutData salesInquireOutData : dataList) {
                    if ("1".equals(salesInquireOutData.getSalesPayMethod())) {
                        salesInquireOutData.setSalesPayMethod("\u73b0\u91d1");
                    }
                    if ("2".equals(salesInquireOutData.getSalesPayMethod())) {
                        salesInquireOutData.setSalesPayMethod("\u5fae\u4fe1/\u652f\u4ed8\u5b9d");
                    }
                    if ("3".equals(salesInquireOutData.getSalesPayMethod())) {
                        salesInquireOutData.setSalesPayMethod("\u94f6\u884c\u5361");
                    }
                    if ("4".equals(salesInquireOutData.getSalesPayMethod())) {
                        salesInquireOutData.setSalesPayMethod("\u533b\u4fdd");
                    }
                    if (!"5".equals(salesInquireOutData.getSalesPayMethod())) continue;
                    salesInquireOutData.setSalesPayMethod("\u50a8\u503c\u5361");
                }
            }
        } else {
            this.pagination.setPageCount(this.defaultPageCount);
            dataList = new ArrayList();
        }
        this.salesInquireOutDataList.clear();
        this.salesInquireOutDataList = FXCollections.observableArrayList(dataList);
        this.salesInquireDetailOutDataList.clear();
        this.bingOutTableCell();
        this.sortInfo.setItems(this.salesInquireOutDataList);
        return this.sortInfo;
    }

    public TableView<SalesInquireDetailOutData> initDetailOutTable(List<SalesInquireDetailOutData> dataList) {
        this.salesInquireDetailOutDataList.clear();
        this.salesInquireDetailOutDataList = FXCollections.observableArrayList(dataList);
        this.bingDetailOutTableCell();
        this.detailInfo.setItems(this.salesInquireDetailOutDataList);
        return this.detailInfo;
    }

    private List<GsmchStatus> getAllStatus() {
        ArrayList<GsmchStatus> list = new ArrayList<GsmchStatus>();
        list.add(new GsmchStatus("0", "\u5426"));
        list.add(new GsmchStatus("1", "\u662f"));
        return list;
    }

    private List<GsmchType> getAllPayMethod() {
        ArrayList<GsmchType> list = new ArrayList<GsmchType>();
        list.add(new GsmchType("1", "\u73b0\u91d1"));
        list.add(new GsmchType("3", "\u94f6\u884c\u5361"));
        list.add(new GsmchType("2", "\u5fae\u4fe1/\u652f\u4ed8\u5b9d"));
        list.add(new GsmchType("4", "\u533b\u4fdd"));
        list.add(new GsmchType("5", "\u50a8\u503c\u5361"));
        return list;
    }

    private List<GsmchType> getAllSpecialMedClass() {
        ArrayList<GsmchType> list = new ArrayList<GsmchType>();
        for (SpecialMedClass specialMedClass : SpecialMedClass.values()) {
            list.add(new GsmchType(specialMedClass.getCode(), specialMedClass.getName()));
        }
        return list;
    }

    @FXML
    void extAction() {
        List<String> billNos = this.getSelectBillNos();
        SalesInquireInData inData = new SalesInquireInData();
        for (String billNo : billNos) {
            inData.setBillNo(billNo);
        }
        PageInfo pageInfo = null;
        HttpJson rsp = SalesInquiryUtil.getSalesInquiryList(inData);
        ArrayList<SalesInquireOutData> list = new ArrayList<SalesInquireOutData>();
        if (rsp.isSuccess()) {
            pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
            if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
                for (int i = 0; i < pageInfo.getList().size(); ++i) {
                    String str = JSONObject.toJSONString(pageInfo.getList().get(i));
                    SalesInquireOutData outData = (SalesInquireOutData)JSONObject.parseObject((String)str, SalesInquireOutData.class);
                    list.add(outData);
                }
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
        }
        List<String> columnName = Arrays.asList("\u5e8f\u53f7", "\u9500\u552e\u5e97\u53f7", "\u5e97\u540d", "\u9500\u552e\u5355\u53f7", "\u9500\u552e\u65e5\u671f", "\u9500\u552e\u65f6\u95f4", "\u4f1a\u5458\u5361\u53f7", "\u4f1a\u5458\u59d3\u540d", "\u96f6\u552e\u91d1\u989d", "\u5b9e\u6536\u91d1\u989d", "\u652f\u4ed8\u65b9\u5f0f", "\u6536\u94f6\u5458", "\u672c\u6b21\u79ef\u5206");
        List<String> columnId = Arrays.asList("index", "salesBrId", "salesBrName", "salesBillNo", "salesDate", "salesTime", "salesMemberCardNum", "salesMemberName", "salesRetailPrice", "salesAmountReceived", "salesPayMethod", "salesCashier", "pointsThisTime");
        boolean result = ExcelUtil.export("\u9500\u552e\u4e3b\u8868", list, columnName, columnId);
        if (result) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u5bfc\u51fa\u6210\u529f");
            alert.showAndWait();
        }
    }

    @FXML
    void extDetailAction() {
        List<String> billNos = this.getSelectBillNos();
        SalesInquireInData inData = new SalesInquireInData();
        for (String billNo : billNos) {
            inData.setBillNo(billNo);
        }
        PageInfo pageInfo = null;
        HttpJson rsp = SalesInquiryUtil.getSalesInquiryDetailList(inData);
        ArrayList<SalesInquireDetailOutData> list = new ArrayList<SalesInquireDetailOutData>();
        if (rsp.isSuccess()) {
            pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
            if (pageInfo != null && !CollectionUtils.isEmpty(pageInfo.getList())) {
                for (int i = 0; i < pageInfo.getList().size(); ++i) {
                    String str = JSONObject.toJSONString(pageInfo.getList().get(i));
                    SalesInquireDetailOutData outData = (SalesInquireDetailOutData)JSONObject.parseObject((String)str, SalesInquireDetailOutData.class);
                    list.add(outData);
                }
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
        }
        List<String> columnName = Arrays.asList("\u5e8f\u53f7", "\u9500\u552e\u5355\u53f7", "\u5546\u54c1\u7f16\u7801", "\u5546\u54c1\u540d\u79f0", "\u89c4\u683c", "\u5355\u4f4d", "\u5242\u578b", "\u884c\u53f7", "\u6279\u53f7", "\u6709\u6548\u671f", "\u6570\u91cf", "\u96f6\u552e\u4ef7", "\u5b9e\u6536\u91d1\u989d", "\u5382\u5bb6", "\u4ea7\u5730", "\u8425\u4e1a\u5458", "\u533b\u751f");
        List<String> columnId = Arrays.asList("indexDetail", "salesDetailBillNo", "salesDetailProCode", "proName", "proSpecs", "proUnit", "proForm", "lineNum", "salesDetailBatchNo", "validUntil", "qty", "salesDetailRetailPrice", "salesDetailAmountReceived", "factory", "origin", "salesDetailPerson", "salesDetailDoctor");
        boolean result = ExcelUtil.export("\u9500\u552e\u660e\u7ec6\u8868", list, columnName, columnId);
        if (result) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u5bfc\u51fa\u6210\u529f");
            alert.showAndWait();
        }
    }

    private List<String> getSelectBillNos() {
        ArrayList<String> billNos = new ArrayList<String>();
        if (!CollectionUtils.isEmpty(this.salesInquireOutDataList)) {
            for (SalesInquireOutData i : this.salesInquireOutDataList) {
                if (!i.getCheckBox().isSelected().booleanValue()) continue;
                billNos.add(i.getSalesBillNo());
            }
        }
        return billNos;
    }

    public Button getQueryBtn() {
        return this.queryBtn;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public TextField getMemberCardNum() {
        return this.memberCardNum;
    }

    public TextField getProCode() {
        return this.proCode;
    }

    public TableColumn<SalesInquireOutData, String> getSalesRetailPrice() {
        return this.salesRetailPrice;
    }

    public TextField getPrescriptionNum() {
        return this.prescriptionNum;
    }

    public TableColumn<SalesInquireDetailOutData, String> getOrigin() {
        return this.origin;
    }

    public TableColumn<SalesInquireOutData, String> getSalesBrId() {
        return this.salesBrId;
    }

    public DatePicker getSaleDate() {
        return this.saleDate;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailRetailPrice() {
        return this.salesDetailRetailPrice;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailDoctor() {
        return this.salesDetailDoctor;
    }

    public TableColumn<SalesInquireOutData, String> getSalesMemberCardNum() {
        return this.salesMemberCardNum;
    }

    public TableColumn<SalesInquireDetailOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<SalesInquireDetailOutData, String> getProForm() {
        return this.proForm;
    }

    public ChoiceBox<GsmchType> getPayMethod() {
        return this.payMethod;
    }

    public ChoiceBox<GetUserOutData> getCashier() {
        return this.cashier;
    }

    public TableColumn<SalesInquireDetailOutData, String> getProUnit() {
        return this.proUnit;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailPerson() {
        return this.salesDetailPerson;
    }

    public TableColumn<SalesInquireOutData, String> getSalesBillNo() {
        return this.salesBillNo;
    }

    public TableColumn<SalesInquireOutData, String> getSalesBrName() {
        return this.salesBrName;
    }

    public TableColumn<SalesInquireDetailOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<SalesInquireOutData, String> getPointsThisTime() {
        return this.pointsThisTime;
    }

    public TextField getBillNo() {
        return this.billNo;
    }

    public TableColumn<SalesInquireOutData, String> getSalesPayMethod() {
        return this.salesPayMethod;
    }

    public TableColumn<SalesInquireOutData, String> getSalesMemberName() {
        return this.salesMemberName;
    }

    public TableColumn<SalesInquireDetailOutData, String> getFactory() {
        return this.factory;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailBatchNo() {
        return this.salesDetailBatchNo;
    }

    public TableView<SalesInquireOutData> getSortInfo() {
        return this.sortInfo;
    }

    public TableColumn<SalesInquireOutData, String> getSalesDate() {
        return this.salesDate;
    }

    public CheckBox getIfReturn() {
        return this.ifReturn;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailAmountReceived() {
        return this.salesDetailAmountReceived;
    }

    public TableColumn<SalesInquireOutData, String> getIndex() {
        return this.index;
    }

    public TableView<SalesInquireDetailOutData> getDetailInfo() {
        return this.detailInfo;
    }

    public TableColumn<SalesInquireDetailOutData, String> getIndexDetail() {
        return this.indexDetail;
    }

    public ChoiceBox<GetDoctorOutData> getDoctor() {
        return this.doctor;
    }

    public TableColumn<SalesInquireOutData, String> getSalesAmountReceived() {
        return this.salesAmountReceived;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailBillNo() {
        return this.salesDetailBillNo;
    }

    public TextField getTotalAmt() {
        return this.totalAmt;
    }

    public TextField getBatchNo() {
        return this.batchNo;
    }

    public TableColumn<SalesInquireOutData, String> getSalesCashier() {
        return this.salesCashier;
    }

    public TableColumn<SalesInquireDetailOutData, String> getQty() {
        return this.qty;
    }

    public TableColumn<SalesInquireDetailOutData, String> getLineNum() {
        return this.lineNum;
    }

    public TableColumn<SalesInquireDetailOutData, String> getValidUntil() {
        return this.validUntil;
    }

    public ChoiceBox<GetUserOutData> getSalesPerson() {
        return this.salesPerson;
    }

    public ChoiceBox<GsmchType> getSpecialDrugClass() {
        return this.specialDrugClass;
    }

    public ChoiceBox<GsmchStatus> getIfSplit() {
        return this.ifSplit;
    }

    public TableColumn<SalesInquireOutData, String> getSalesTime() {
        return this.salesTime;
    }

    public TableColumn<SalesInquireDetailOutData, String> getSalesDetailProCode() {
        return this.salesDetailProCode;
    }

    public Pane getModelPane() {
        return this.modelPane;
    }

    public Pagination getPagination() {
        return this.pagination;
    }

    public Button getExtDetailBtn() {
        return this.extDetailBtn;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public Button getExtBtn() {
        return this.extBtn;
    }

    public TableColumn<SalesInquireOutData, CheckBox> getCheckBox() {
        return this.checkBox;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getDefaultPageCount() {
        return this.defaultPageCount;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public List<GetUserOutData> getOutDataList() {
        return this.outDataList;
    }

    public ObservableList<SalesInquireOutData> getSalesInquireOutDataList() {
        return this.salesInquireOutDataList;
    }

    public ObservableList<SalesInquireDetailOutData> getSalesInquireDetailOutDataList() {
        return this.salesInquireDetailOutDataList;
    }

    public void setQueryBtn(Button queryBtn) {
        this.queryBtn = queryBtn;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setMemberCardNum(TextField memberCardNum) {
        this.memberCardNum = memberCardNum;
    }

    public void setProCode(TextField proCode) {
        this.proCode = proCode;
    }

    public void setSalesRetailPrice(TableColumn<SalesInquireOutData, String> salesRetailPrice) {
        this.salesRetailPrice = salesRetailPrice;
    }

    public void setPrescriptionNum(TextField prescriptionNum) {
        this.prescriptionNum = prescriptionNum;
    }

    public void setOrigin(TableColumn<SalesInquireDetailOutData, String> origin) {
        this.origin = origin;
    }

    public void setSalesBrId(TableColumn<SalesInquireOutData, String> salesBrId) {
        this.salesBrId = salesBrId;
    }

    public void setSaleDate(DatePicker saleDate) {
        this.saleDate = saleDate;
    }

    public void setSalesDetailRetailPrice(TableColumn<SalesInquireDetailOutData, String> salesDetailRetailPrice) {
        this.salesDetailRetailPrice = salesDetailRetailPrice;
    }

    public void setSalesDetailDoctor(TableColumn<SalesInquireDetailOutData, String> salesDetailDoctor) {
        this.salesDetailDoctor = salesDetailDoctor;
    }

    public void setSalesMemberCardNum(TableColumn<SalesInquireOutData, String> salesMemberCardNum) {
        this.salesMemberCardNum = salesMemberCardNum;
    }

    public void setProSpecs(TableColumn<SalesInquireDetailOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProForm(TableColumn<SalesInquireDetailOutData, String> proForm) {
        this.proForm = proForm;
    }

    public void setPayMethod(ChoiceBox<GsmchType> payMethod) {
        this.payMethod = payMethod;
    }

    public void setCashier(ChoiceBox<GetUserOutData> cashier) {
        this.cashier = cashier;
    }

    public void setProUnit(TableColumn<SalesInquireDetailOutData, String> proUnit) {
        this.proUnit = proUnit;
    }

    public void setSalesDetailPerson(TableColumn<SalesInquireDetailOutData, String> salesDetailPerson) {
        this.salesDetailPerson = salesDetailPerson;
    }

    public void setSalesBillNo(TableColumn<SalesInquireOutData, String> salesBillNo) {
        this.salesBillNo = salesBillNo;
    }

    public void setSalesBrName(TableColumn<SalesInquireOutData, String> salesBrName) {
        this.salesBrName = salesBrName;
    }

    public void setProName(TableColumn<SalesInquireDetailOutData, String> proName) {
        this.proName = proName;
    }

    public void setPointsThisTime(TableColumn<SalesInquireOutData, String> pointsThisTime) {
        this.pointsThisTime = pointsThisTime;
    }

    public void setBillNo(TextField billNo) {
        this.billNo = billNo;
    }

    public void setSalesPayMethod(TableColumn<SalesInquireOutData, String> salesPayMethod) {
        this.salesPayMethod = salesPayMethod;
    }

    public void setSalesMemberName(TableColumn<SalesInquireOutData, String> salesMemberName) {
        this.salesMemberName = salesMemberName;
    }

    public void setFactory(TableColumn<SalesInquireDetailOutData, String> factory) {
        this.factory = factory;
    }

    public void setSalesDetailBatchNo(TableColumn<SalesInquireDetailOutData, String> salesDetailBatchNo) {
        this.salesDetailBatchNo = salesDetailBatchNo;
    }

    public void setSortInfo(TableView<SalesInquireOutData> sortInfo) {
        this.sortInfo = sortInfo;
    }

    public void setSalesDate(TableColumn<SalesInquireOutData, String> salesDate) {
        this.salesDate = salesDate;
    }

    public void setIfReturn(CheckBox ifReturn) {
        this.ifReturn = ifReturn;
    }

    public void setSalesDetailAmountReceived(TableColumn<SalesInquireDetailOutData, String> salesDetailAmountReceived) {
        this.salesDetailAmountReceived = salesDetailAmountReceived;
    }

    public void setIndex(TableColumn<SalesInquireOutData, String> index) {
        this.index = index;
    }

    public void setDetailInfo(TableView<SalesInquireDetailOutData> detailInfo) {
        this.detailInfo = detailInfo;
    }

    public void setIndexDetail(TableColumn<SalesInquireDetailOutData, String> indexDetail) {
        this.indexDetail = indexDetail;
    }

    public void setDoctor(ChoiceBox<GetDoctorOutData> doctor) {
        this.doctor = doctor;
    }

    public void setSalesAmountReceived(TableColumn<SalesInquireOutData, String> salesAmountReceived) {
        this.salesAmountReceived = salesAmountReceived;
    }

    public void setSalesDetailBillNo(TableColumn<SalesInquireDetailOutData, String> salesDetailBillNo) {
        this.salesDetailBillNo = salesDetailBillNo;
    }

    public void setTotalAmt(TextField totalAmt) {
        this.totalAmt = totalAmt;
    }

    public void setBatchNo(TextField batchNo) {
        this.batchNo = batchNo;
    }

    public void setSalesCashier(TableColumn<SalesInquireOutData, String> salesCashier) {
        this.salesCashier = salesCashier;
    }

    public void setQty(TableColumn<SalesInquireDetailOutData, String> qty) {
        this.qty = qty;
    }

    public void setLineNum(TableColumn<SalesInquireDetailOutData, String> lineNum) {
        this.lineNum = lineNum;
    }

    public void setValidUntil(TableColumn<SalesInquireDetailOutData, String> validUntil) {
        this.validUntil = validUntil;
    }

    public void setSalesPerson(ChoiceBox<GetUserOutData> salesPerson) {
        this.salesPerson = salesPerson;
    }

    public void setSpecialDrugClass(ChoiceBox<GsmchType> specialDrugClass) {
        this.specialDrugClass = specialDrugClass;
    }

    public void setIfSplit(ChoiceBox<GsmchStatus> ifSplit) {
        this.ifSplit = ifSplit;
    }

    public void setSalesTime(TableColumn<SalesInquireOutData, String> salesTime) {
        this.salesTime = salesTime;
    }

    public void setSalesDetailProCode(TableColumn<SalesInquireDetailOutData, String> salesDetailProCode) {
        this.salesDetailProCode = salesDetailProCode;
    }

    public void setModelPane(Pane modelPane) {
        this.modelPane = modelPane;
    }

    public void setPagination(Pagination pagination) {
        this.pagination = pagination;
    }

    public void setExtDetailBtn(Button extDetailBtn) {
        this.extDetailBtn = extDetailBtn;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setExtBtn(Button extBtn) {
        this.extBtn = extBtn;
    }

    public void setCheckBox(TableColumn<SalesInquireOutData, CheckBox> checkBox) {
        this.checkBox = checkBox;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public void setOutDataList(List<GetUserOutData> outDataList) {
        this.outDataList = outDataList;
    }

    public void setSalesInquireOutDataList(ObservableList<SalesInquireOutData> salesInquireOutDataList) {
        this.salesInquireOutDataList = salesInquireOutDataList;
    }

    public void setSalesInquireDetailOutDataList(ObservableList<SalesInquireDetailOutData> salesInquireDetailOutDataList) {
        this.salesInquireDetailOutDataList = salesInquireDetailOutDataList;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof SalesInquireController)) {
            return false;
        }
        SalesInquireController other = (SalesInquireController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        Button this$queryBtn = this.getQueryBtn();
        Button other$queryBtn = other.getQueryBtn();
        if (this$queryBtn == null ? other$queryBtn != null : !this$queryBtn.equals(other$queryBtn)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        TextField this$memberCardNum = this.getMemberCardNum();
        TextField other$memberCardNum = other.getMemberCardNum();
        if (this$memberCardNum == null ? other$memberCardNum != null : !this$memberCardNum.equals(other$memberCardNum)) {
            return false;
        }
        TextField this$proCode = this.getProCode();
        TextField other$proCode = other.getProCode();
        if (this$proCode == null ? other$proCode != null : !this$proCode.equals(other$proCode)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesRetailPrice = this.getSalesRetailPrice();
        TableColumn<SalesInquireOutData, String> other$salesRetailPrice = other.getSalesRetailPrice();
        if (this$salesRetailPrice == null ? other$salesRetailPrice != null : !this$salesRetailPrice.equals(other$salesRetailPrice)) {
            return false;
        }
        TextField this$prescriptionNum = this.getPrescriptionNum();
        TextField other$prescriptionNum = other.getPrescriptionNum();
        if (this$prescriptionNum == null ? other$prescriptionNum != null : !this$prescriptionNum.equals(other$prescriptionNum)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$origin = this.getOrigin();
        TableColumn<SalesInquireDetailOutData, String> other$origin = other.getOrigin();
        if (this$origin == null ? other$origin != null : !this$origin.equals(other$origin)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesBrId = this.getSalesBrId();
        TableColumn<SalesInquireOutData, String> other$salesBrId = other.getSalesBrId();
        if (this$salesBrId == null ? other$salesBrId != null : !this$salesBrId.equals(other$salesBrId)) {
            return false;
        }
        DatePicker this$saleDate = this.getSaleDate();
        DatePicker other$saleDate = other.getSaleDate();
        if (this$saleDate == null ? other$saleDate != null : !this$saleDate.equals(other$saleDate)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailRetailPrice = this.getSalesDetailRetailPrice();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailRetailPrice = other.getSalesDetailRetailPrice();
        if (this$salesDetailRetailPrice == null ? other$salesDetailRetailPrice != null : !this$salesDetailRetailPrice.equals(other$salesDetailRetailPrice)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailDoctor = this.getSalesDetailDoctor();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailDoctor = other.getSalesDetailDoctor();
        if (this$salesDetailDoctor == null ? other$salesDetailDoctor != null : !this$salesDetailDoctor.equals(other$salesDetailDoctor)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesMemberCardNum = this.getSalesMemberCardNum();
        TableColumn<SalesInquireOutData, String> other$salesMemberCardNum = other.getSalesMemberCardNum();
        if (this$salesMemberCardNum == null ? other$salesMemberCardNum != null : !this$salesMemberCardNum.equals(other$salesMemberCardNum)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<SalesInquireDetailOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$proForm = this.getProForm();
        TableColumn<SalesInquireDetailOutData, String> other$proForm = other.getProForm();
        if (this$proForm == null ? other$proForm != null : !this$proForm.equals(other$proForm)) {
            return false;
        }
        ChoiceBox<GsmchType> this$payMethod = this.getPayMethod();
        ChoiceBox<GsmchType> other$payMethod = other.getPayMethod();
        if (this$payMethod == null ? other$payMethod != null : !this$payMethod.equals(other$payMethod)) {
            return false;
        }
        ChoiceBox<GetUserOutData> this$cashier = this.getCashier();
        ChoiceBox<GetUserOutData> other$cashier = other.getCashier();
        if (this$cashier == null ? other$cashier != null : !this$cashier.equals(other$cashier)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$proUnit = this.getProUnit();
        TableColumn<SalesInquireDetailOutData, String> other$proUnit = other.getProUnit();
        if (this$proUnit == null ? other$proUnit != null : !this$proUnit.equals(other$proUnit)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailPerson = this.getSalesDetailPerson();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailPerson = other.getSalesDetailPerson();
        if (this$salesDetailPerson == null ? other$salesDetailPerson != null : !this$salesDetailPerson.equals(other$salesDetailPerson)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesBillNo = this.getSalesBillNo();
        TableColumn<SalesInquireOutData, String> other$salesBillNo = other.getSalesBillNo();
        if (this$salesBillNo == null ? other$salesBillNo != null : !this$salesBillNo.equals(other$salesBillNo)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesBrName = this.getSalesBrName();
        TableColumn<SalesInquireOutData, String> other$salesBrName = other.getSalesBrName();
        if (this$salesBrName == null ? other$salesBrName != null : !this$salesBrName.equals(other$salesBrName)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$proName = this.getProName();
        TableColumn<SalesInquireDetailOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$pointsThisTime = this.getPointsThisTime();
        TableColumn<SalesInquireOutData, String> other$pointsThisTime = other.getPointsThisTime();
        if (this$pointsThisTime == null ? other$pointsThisTime != null : !this$pointsThisTime.equals(other$pointsThisTime)) {
            return false;
        }
        TextField this$billNo = this.getBillNo();
        TextField other$billNo = other.getBillNo();
        if (this$billNo == null ? other$billNo != null : !this$billNo.equals(other$billNo)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesPayMethod = this.getSalesPayMethod();
        TableColumn<SalesInquireOutData, String> other$salesPayMethod = other.getSalesPayMethod();
        if (this$salesPayMethod == null ? other$salesPayMethod != null : !this$salesPayMethod.equals(other$salesPayMethod)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesMemberName = this.getSalesMemberName();
        TableColumn<SalesInquireOutData, String> other$salesMemberName = other.getSalesMemberName();
        if (this$salesMemberName == null ? other$salesMemberName != null : !this$salesMemberName.equals(other$salesMemberName)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$factory = this.getFactory();
        TableColumn<SalesInquireDetailOutData, String> other$factory = other.getFactory();
        if (this$factory == null ? other$factory != null : !this$factory.equals(other$factory)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailBatchNo = this.getSalesDetailBatchNo();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailBatchNo = other.getSalesDetailBatchNo();
        if (this$salesDetailBatchNo == null ? other$salesDetailBatchNo != null : !this$salesDetailBatchNo.equals(other$salesDetailBatchNo)) {
            return false;
        }
        TableView<SalesInquireOutData> this$sortInfo = this.getSortInfo();
        TableView<SalesInquireOutData> other$sortInfo = other.getSortInfo();
        if (this$sortInfo == null ? other$sortInfo != null : !this$sortInfo.equals(other$sortInfo)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesDate = this.getSalesDate();
        TableColumn<SalesInquireOutData, String> other$salesDate = other.getSalesDate();
        if (this$salesDate == null ? other$salesDate != null : !this$salesDate.equals(other$salesDate)) {
            return false;
        }
        CheckBox this$ifReturn = this.getIfReturn();
        CheckBox other$ifReturn = other.getIfReturn();
        if (this$ifReturn == null ? other$ifReturn != null : !this$ifReturn.equals(other$ifReturn)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailAmountReceived = this.getSalesDetailAmountReceived();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailAmountReceived = other.getSalesDetailAmountReceived();
        if (this$salesDetailAmountReceived == null ? other$salesDetailAmountReceived != null : !this$salesDetailAmountReceived.equals(other$salesDetailAmountReceived)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$index = this.getIndex();
        TableColumn<SalesInquireOutData, String> other$index = other.getIndex();
        if (this$index == null ? other$index != null : !this$index.equals(other$index)) {
            return false;
        }
        TableView<SalesInquireDetailOutData> this$detailInfo = this.getDetailInfo();
        TableView<SalesInquireDetailOutData> other$detailInfo = other.getDetailInfo();
        if (this$detailInfo == null ? other$detailInfo != null : !this$detailInfo.equals(other$detailInfo)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$indexDetail = this.getIndexDetail();
        TableColumn<SalesInquireDetailOutData, String> other$indexDetail = other.getIndexDetail();
        if (this$indexDetail == null ? other$indexDetail != null : !this$indexDetail.equals(other$indexDetail)) {
            return false;
        }
        ChoiceBox<GetDoctorOutData> this$doctor = this.getDoctor();
        ChoiceBox<GetDoctorOutData> other$doctor = other.getDoctor();
        if (this$doctor == null ? other$doctor != null : !this$doctor.equals(other$doctor)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesAmountReceived = this.getSalesAmountReceived();
        TableColumn<SalesInquireOutData, String> other$salesAmountReceived = other.getSalesAmountReceived();
        if (this$salesAmountReceived == null ? other$salesAmountReceived != null : !this$salesAmountReceived.equals(other$salesAmountReceived)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailBillNo = this.getSalesDetailBillNo();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailBillNo = other.getSalesDetailBillNo();
        if (this$salesDetailBillNo == null ? other$salesDetailBillNo != null : !this$salesDetailBillNo.equals(other$salesDetailBillNo)) {
            return false;
        }
        TextField this$totalAmt = this.getTotalAmt();
        TextField other$totalAmt = other.getTotalAmt();
        if (this$totalAmt == null ? other$totalAmt != null : !this$totalAmt.equals(other$totalAmt)) {
            return false;
        }
        TextField this$batchNo = this.getBatchNo();
        TextField other$batchNo = other.getBatchNo();
        if (this$batchNo == null ? other$batchNo != null : !this$batchNo.equals(other$batchNo)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesCashier = this.getSalesCashier();
        TableColumn<SalesInquireOutData, String> other$salesCashier = other.getSalesCashier();
        if (this$salesCashier == null ? other$salesCashier != null : !this$salesCashier.equals(other$salesCashier)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$qty = this.getQty();
        TableColumn<SalesInquireDetailOutData, String> other$qty = other.getQty();
        if (this$qty == null ? other$qty != null : !this$qty.equals(other$qty)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$lineNum = this.getLineNum();
        TableColumn<SalesInquireDetailOutData, String> other$lineNum = other.getLineNum();
        if (this$lineNum == null ? other$lineNum != null : !this$lineNum.equals(other$lineNum)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$validUntil = this.getValidUntil();
        TableColumn<SalesInquireDetailOutData, String> other$validUntil = other.getValidUntil();
        if (this$validUntil == null ? other$validUntil != null : !this$validUntil.equals(other$validUntil)) {
            return false;
        }
        ChoiceBox<GetUserOutData> this$salesPerson = this.getSalesPerson();
        ChoiceBox<GetUserOutData> other$salesPerson = other.getSalesPerson();
        if (this$salesPerson == null ? other$salesPerson != null : !this$salesPerson.equals(other$salesPerson)) {
            return false;
        }
        ChoiceBox<GsmchType> this$specialDrugClass = this.getSpecialDrugClass();
        ChoiceBox<GsmchType> other$specialDrugClass = other.getSpecialDrugClass();
        if (this$specialDrugClass == null ? other$specialDrugClass != null : !this$specialDrugClass.equals(other$specialDrugClass)) {
            return false;
        }
        ChoiceBox<GsmchStatus> this$ifSplit = this.getIfSplit();
        ChoiceBox<GsmchStatus> other$ifSplit = other.getIfSplit();
        if (this$ifSplit == null ? other$ifSplit != null : !this$ifSplit.equals(other$ifSplit)) {
            return false;
        }
        TableColumn<SalesInquireOutData, String> this$salesTime = this.getSalesTime();
        TableColumn<SalesInquireOutData, String> other$salesTime = other.getSalesTime();
        if (this$salesTime == null ? other$salesTime != null : !this$salesTime.equals(other$salesTime)) {
            return false;
        }
        TableColumn<SalesInquireDetailOutData, String> this$salesDetailProCode = this.getSalesDetailProCode();
        TableColumn<SalesInquireDetailOutData, String> other$salesDetailProCode = other.getSalesDetailProCode();
        if (this$salesDetailProCode == null ? other$salesDetailProCode != null : !this$salesDetailProCode.equals(other$salesDetailProCode)) {
            return false;
        }
        Pane this$modelPane = this.getModelPane();
        Pane other$modelPane = other.getModelPane();
        if (this$modelPane == null ? other$modelPane != null : !this$modelPane.equals(other$modelPane)) {
            return false;
        }
        Pagination this$pagination = this.getPagination();
        Pagination other$pagination = other.getPagination();
        if (this$pagination == null ? other$pagination != null : !this$pagination.equals(other$pagination)) {
            return false;
        }
        Button this$extDetailBtn = this.getExtDetailBtn();
        Button other$extDetailBtn = other.getExtDetailBtn();
        if (this$extDetailBtn == null ? other$extDetailBtn != null : !this$extDetailBtn.equals(other$extDetailBtn)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        Button this$extBtn = this.getExtBtn();
        Button other$extBtn = other.getExtBtn();
        if (this$extBtn == null ? other$extBtn != null : !this$extBtn.equals(other$extBtn)) {
            return false;
        }
        TableColumn<SalesInquireOutData, CheckBox> this$checkBox = this.getCheckBox();
        TableColumn<SalesInquireOutData, CheckBox> other$checkBox = other.getCheckBox();
        if (this$checkBox == null ? other$checkBox != null : !this$checkBox.equals(other$checkBox)) {
            return false;
        }
        if (this.getPageSize() != other.getPageSize()) {
            return false;
        }
        if (this.getDefaultPageCount() != other.getDefaultPageCount()) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        if (this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController)) {
            return false;
        }
        List<GetUserOutData> this$outDataList = this.getOutDataList();
        List<GetUserOutData> other$outDataList = other.getOutDataList();
        if (this$outDataList == null ? other$outDataList != null : !(this$outDataList).equals(other$outDataList)) {
            return false;
        }
        ObservableList<SalesInquireOutData> this$salesInquireOutDataList = this.getSalesInquireOutDataList();
        ObservableList<SalesInquireOutData> other$salesInquireOutDataList = other.getSalesInquireOutDataList();
        if (this$salesInquireOutDataList == null ? other$salesInquireOutDataList != null : !this$salesInquireOutDataList.equals(other$salesInquireOutDataList)) {
            return false;
        }
        ObservableList<SalesInquireDetailOutData> this$salesInquireDetailOutDataList = this.getSalesInquireDetailOutDataList();
        ObservableList<SalesInquireDetailOutData> other$salesInquireDetailOutDataList = other.getSalesInquireDetailOutDataList();
        return !(this$salesInquireDetailOutDataList == null ? other$salesInquireDetailOutDataList != null : !this$salesInquireDetailOutDataList.equals(other$salesInquireDetailOutDataList));
    }

    protected boolean canEqual(Object other) {
        return other instanceof SalesInquireController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        Button $queryBtn = this.getQueryBtn();
        result = result * 59 + ($queryBtn == null ? 43 : $queryBtn.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        TextField $memberCardNum = this.getMemberCardNum();
        result = result * 59 + ($memberCardNum == null ? 43 : $memberCardNum.hashCode());
        TextField $proCode = this.getProCode();
        result = result * 59 + ($proCode == null ? 43 : $proCode.hashCode());
        TableColumn<SalesInquireOutData, String> $salesRetailPrice = this.getSalesRetailPrice();
        result = result * 59 + ($salesRetailPrice == null ? 43 : $salesRetailPrice.hashCode());
        TextField $prescriptionNum = this.getPrescriptionNum();
        result = result * 59 + ($prescriptionNum == null ? 43 : $prescriptionNum.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $origin = this.getOrigin();
        result = result * 59 + ($origin == null ? 43 : $origin.hashCode());
        TableColumn<SalesInquireOutData, String> $salesBrId = this.getSalesBrId();
        result = result * 59 + ($salesBrId == null ? 43 : $salesBrId.hashCode());
        DatePicker $saleDate = this.getSaleDate();
        result = result * 59 + ($saleDate == null ? 43 : $saleDate.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailRetailPrice = this.getSalesDetailRetailPrice();
        result = result * 59 + ($salesDetailRetailPrice == null ? 43 : $salesDetailRetailPrice.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailDoctor = this.getSalesDetailDoctor();
        result = result * 59 + ($salesDetailDoctor == null ? 43 : $salesDetailDoctor.hashCode());
        TableColumn<SalesInquireOutData, String> $salesMemberCardNum = this.getSalesMemberCardNum();
        result = result * 59 + ($salesMemberCardNum == null ? 43 : $salesMemberCardNum.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $proForm = this.getProForm();
        result = result * 59 + ($proForm == null ? 43 : $proForm.hashCode());
        ChoiceBox<GsmchType> $payMethod = this.getPayMethod();
        result = result * 59 + ($payMethod == null ? 43 : $payMethod.hashCode());
        ChoiceBox<GetUserOutData> $cashier = this.getCashier();
        result = result * 59 + ($cashier == null ? 43 : $cashier.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $proUnit = this.getProUnit();
        result = result * 59 + ($proUnit == null ? 43 : $proUnit.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailPerson = this.getSalesDetailPerson();
        result = result * 59 + ($salesDetailPerson == null ? 43 : $salesDetailPerson.hashCode());
        TableColumn<SalesInquireOutData, String> $salesBillNo = this.getSalesBillNo();
        result = result * 59 + ($salesBillNo == null ? 43 : $salesBillNo.hashCode());
        TableColumn<SalesInquireOutData, String> $salesBrName = this.getSalesBrName();
        result = result * 59 + ($salesBrName == null ? 43 : $salesBrName.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<SalesInquireOutData, String> $pointsThisTime = this.getPointsThisTime();
        result = result * 59 + ($pointsThisTime == null ? 43 : $pointsThisTime.hashCode());
        TextField $billNo = this.getBillNo();
        result = result * 59 + ($billNo == null ? 43 : $billNo.hashCode());
        TableColumn<SalesInquireOutData, String> $salesPayMethod = this.getSalesPayMethod();
        result = result * 59 + ($salesPayMethod == null ? 43 : $salesPayMethod.hashCode());
        TableColumn<SalesInquireOutData, String> $salesMemberName = this.getSalesMemberName();
        result = result * 59 + ($salesMemberName == null ? 43 : $salesMemberName.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $factory = this.getFactory();
        result = result * 59 + ($factory == null ? 43 : $factory.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailBatchNo = this.getSalesDetailBatchNo();
        result = result * 59 + ($salesDetailBatchNo == null ? 43 : $salesDetailBatchNo.hashCode());
        TableView<SalesInquireOutData> $sortInfo = this.getSortInfo();
        result = result * 59 + ($sortInfo == null ? 43 : $sortInfo.hashCode());
        TableColumn<SalesInquireOutData, String> $salesDate = this.getSalesDate();
        result = result * 59 + ($salesDate == null ? 43 : $salesDate.hashCode());
        CheckBox $ifReturn = this.getIfReturn();
        result = result * 59 + ($ifReturn == null ? 43 : $ifReturn.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailAmountReceived = this.getSalesDetailAmountReceived();
        result = result * 59 + ($salesDetailAmountReceived == null ? 43 : $salesDetailAmountReceived.hashCode());
        TableColumn<SalesInquireOutData, String> $index = this.getIndex();
        result = result * 59 + ($index == null ? 43 : $index.hashCode());
        TableView<SalesInquireDetailOutData> $detailInfo = this.getDetailInfo();
        result = result * 59 + ($detailInfo == null ? 43 : $detailInfo.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $indexDetail = this.getIndexDetail();
        result = result * 59 + ($indexDetail == null ? 43 : $indexDetail.hashCode());
        ChoiceBox<GetDoctorOutData> $doctor = this.getDoctor();
        result = result * 59 + ($doctor == null ? 43 : $doctor.hashCode());
        TableColumn<SalesInquireOutData, String> $salesAmountReceived = this.getSalesAmountReceived();
        result = result * 59 + ($salesAmountReceived == null ? 43 : $salesAmountReceived.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailBillNo = this.getSalesDetailBillNo();
        result = result * 59 + ($salesDetailBillNo == null ? 43 : $salesDetailBillNo.hashCode());
        TextField $totalAmt = this.getTotalAmt();
        result = result * 59 + ($totalAmt == null ? 43 : $totalAmt.hashCode());
        TextField $batchNo = this.getBatchNo();
        result = result * 59 + ($batchNo == null ? 43 : $batchNo.hashCode());
        TableColumn<SalesInquireOutData, String> $salesCashier = this.getSalesCashier();
        result = result * 59 + ($salesCashier == null ? 43 : $salesCashier.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $qty = this.getQty();
        result = result * 59 + ($qty == null ? 43 : $qty.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $lineNum = this.getLineNum();
        result = result * 59 + ($lineNum == null ? 43 : $lineNum.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $validUntil = this.getValidUntil();
        result = result * 59 + ($validUntil == null ? 43 : $validUntil.hashCode());
        ChoiceBox<GetUserOutData> $salesPerson = this.getSalesPerson();
        result = result * 59 + ($salesPerson == null ? 43 : $salesPerson.hashCode());
        ChoiceBox<GsmchType> $specialDrugClass = this.getSpecialDrugClass();
        result = result * 59 + ($specialDrugClass == null ? 43 : $specialDrugClass.hashCode());
        ChoiceBox<GsmchStatus> $ifSplit = this.getIfSplit();
        result = result * 59 + ($ifSplit == null ? 43 : $ifSplit.hashCode());
        TableColumn<SalesInquireOutData, String> $salesTime = this.getSalesTime();
        result = result * 59 + ($salesTime == null ? 43 : $salesTime.hashCode());
        TableColumn<SalesInquireDetailOutData, String> $salesDetailProCode = this.getSalesDetailProCode();
        result = result * 59 + ($salesDetailProCode == null ? 43 : $salesDetailProCode.hashCode());
        Pane $modelPane = this.getModelPane();
        result = result * 59 + ($modelPane == null ? 43 : $modelPane.hashCode());
        Pagination $pagination = this.getPagination();
        result = result * 59 + ($pagination == null ? 43 : $pagination.hashCode());
        Button $extDetailBtn = this.getExtDetailBtn();
        result = result * 59 + ($extDetailBtn == null ? 43 : $extDetailBtn.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        Button $extBtn = this.getExtBtn();
        result = result * 59 + ($extBtn == null ? 43 : $extBtn.hashCode());
        TableColumn<SalesInquireOutData, CheckBox> $checkBox = this.getCheckBox();
        result = result * 59 + ($checkBox == null ? 43 : $checkBox.hashCode());
        result = result * 59 + this.getPageSize();
        result = result * 59 + this.getDefaultPageCount();
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        List<GetUserOutData> $outDataList = this.getOutDataList();
        result = result * 59 + ($outDataList == null ? 43 : ($outDataList).hashCode());
        ObservableList<SalesInquireOutData> $salesInquireOutDataList = this.getSalesInquireOutDataList();
        result = result * 59 + ($salesInquireOutDataList == null ? 43 : $salesInquireOutDataList.hashCode());
        ObservableList<SalesInquireDetailOutData> $salesInquireDetailOutDataList = this.getSalesInquireDetailOutDataList();
        result = result * 59 + ($salesInquireDetailOutDataList == null ? 43 : $salesInquireDetailOutDataList.hashCode());
        return result;
    }

    public String toString() {
        return "SalesInquireController(queryBtn=" + this.getQueryBtn() + ", vBox=" + this.getVBox() + ", memberCardNum=" + this.getMemberCardNum() + ", proCode=" + this.getProCode() + ", salesRetailPrice=" + this.getSalesRetailPrice() + ", prescriptionNum=" + this.getPrescriptionNum() + ", origin=" + this.getOrigin() + ", salesBrId=" + this.getSalesBrId() + ", saleDate=" + this.getSaleDate() + ", salesDetailRetailPrice=" + this.getSalesDetailRetailPrice() + ", salesDetailDoctor=" + this.getSalesDetailDoctor() + ", salesMemberCardNum=" + this.getSalesMemberCardNum() + ", proSpecs=" + this.getProSpecs() + ", proForm=" + this.getProForm() + ", payMethod=" + this.getPayMethod() + ", cashier=" + this.getCashier() + ", proUnit=" + this.getProUnit() + ", salesDetailPerson=" + this.getSalesDetailPerson() + ", salesBillNo=" + this.getSalesBillNo() + ", salesBrName=" + this.getSalesBrName() + ", proName=" + this.getProName() + ", pointsThisTime=" + this.getPointsThisTime() + ", billNo=" + this.getBillNo() + ", salesPayMethod=" + this.getSalesPayMethod() + ", salesMemberName=" + this.getSalesMemberName() + ", factory=" + this.getFactory() + ", salesDetailBatchNo=" + this.getSalesDetailBatchNo() + ", sortInfo=" + this.getSortInfo() + ", salesDate=" + this.getSalesDate() + ", ifReturn=" + this.getIfReturn() + ", salesDetailAmountReceived=" + this.getSalesDetailAmountReceived() + ", index=" + this.getIndex() + ", detailInfo=" + this.getDetailInfo() + ", indexDetail=" + this.getIndexDetail() + ", doctor=" + this.getDoctor() + ", salesAmountReceived=" + this.getSalesAmountReceived() + ", salesDetailBillNo=" + this.getSalesDetailBillNo() + ", totalAmt=" + this.getTotalAmt() + ", batchNo=" + this.getBatchNo() + ", salesCashier=" + this.getSalesCashier() + ", qty=" + this.getQty() + ", lineNum=" + this.getLineNum() + ", validUntil=" + this.getValidUntil() + ", salesPerson=" + this.getSalesPerson() + ", specialDrugClass=" + this.getSpecialDrugClass() + ", ifSplit=" + this.getIfSplit() + ", salesTime=" + this.getSalesTime() + ", salesDetailProCode=" + this.getSalesDetailProCode() + ", modelPane=" + this.getModelPane() + ", pagination=" + this.getPagination() + ", extDetailBtn=" + this.getExtDetailBtn() + ", scrollPane=" + this.getScrollPane() + ", extBtn=" + this.getExtBtn() + ", checkBox=" + this.getCheckBox() + ", pageSize=" + this.getPageSize() + ", defaultPageCount=" + this.getDefaultPageCount() + ", indexController=" + this.getIndexController() + ", outDataList=" + this.getOutDataList() + ", salesInquireOutDataList=" + this.getSalesInquireOutDataList() + ", salesInquireDetailOutDataList=" + this.getSalesInquireDetailOutDataList() + ")";
    }
}

